import math


#cruzada(ana1.amostras,ana2.amostras,ana1.media,ana2.media,Mmax)
#print ana2.segundoMaiorAmostra() - ana1.segundoMaiorAmostra()

class Correlacao:

	def cruzada(self,vetor1,vetor2,media1,media2,Mmax):
		if len(vetor1) > len(vetor2):
			N = len(vetor2)
		else:
			N = len(vetor1)
		if N > Mmax*10:
			N = Mmax*10
		print N
		idmax1 = 0
		idmax2 = 0
		vetCorr1 = []
		vetCorr2 = []
		for i in range(Mmax):
			vetCorr1.append(self.r(vetor1,vetor2,media1,media2,i,N))
			vetCorr2.append(self.r(vetor2,vetor1,media2,media1,i,N))
			if vetCorr1[i] > vetCorr1[idmax1]:
				idmax1 = i
			if vetCorr2[i] > vetCorr2[idmax2]:
				idmax2 = i
		if vetCorr1[idmax1] > vetCorr2[idmax2]:
			itdA = idmax1
		else:
			itdA = -idmax2
		return itdA
		
	def r(self,vetor1,vetor2,media1,media2,d,N):
		cima = 0
		norma1 = 0
		norma2 = 0
		for i in range(N-d):
			cima = cima + (vetor1[i]-media1) * (vetor2[i+d]-media2)
			norma1 = norma1 + (vetor1[i]-media1)**2
			norma2 = norma2 + (vetor2[i+d]-media2)**2
		return cima/(math.sqrt(norma1*norma2))
